#include "rotation.h"

//--------------------- Constructeurs et destructeur -------------------

/****************************************************************************************
 * Constructeur par défault                                                             *
 ****************************************************************************************/
Rotation::Rotation()
{
    _angle = _rx = _ry = _rz = 0.0;
}

/****************************************************************************************
 * Constructeur à quatre paramètres                                                     *
 * @param tx : composante en x de la rotation                                           *
 * @param ty : composante en y de la rotation                                           *
 * @param tz : composante en z de la rotation                                           *
 * @param angle : angle de la rotation                                                  *
 ****************************************************************************************/
Rotation::Rotation(GLfloat angle, GLfloat rx, GLfloat ry, GLfloat rz)
    : _angle(angle), _rx(rx), _ry(ry), _rz(rz)
{

}

/****************************************************************************************
 * Destructeur                                                                          *
 ****************************************************************************************/
Rotation::~Rotation()
{

}
//----------------------------------------------------------------------
//--------------------- Méthodes ---------------------------------------

/****************************************************************************************
 * On utilise la transformation de rotation                                             *
 ****************************************************************************************/
void Rotation::utiliser()
{
    glRotatef(_angle, _rx, _ry, _rz);
}

//----------------------------------------------------------------------
//--------------------- Accesseurs -------------------------------------

/****************************************************************************************
 * Mutateur sur la composante en x de la rotation                                       *
 * @param rx : la nouvelle composante en x de la rotation                               *
 ****************************************************************************************/
void Rotation::setRx(GLfloat rx)
{
    _rx = rx;
}

/****************************************************************************************
 * Mutateur sur la composante en y de la rotation                                       *
 * @param ry : la nouvelle composante en y de la rotation                               *
 ****************************************************************************************/
void Rotation::setRy(GLfloat ry)
{
    _ry = ry;
}

/****************************************************************************************
 * Mutateur sur la composante en z de la rotation                                       *
 * @param rz : la nouvelle composante en z de la rotation                               *
 ****************************************************************************************/
void Rotation::setRz(GLfloat rz)
{
    _rz = rz;
}

/****************************************************************************************
 * Mutateur sur l'angle de la rotation                                                  *
 * @param angle : la nouvelle valeur de l'angle                                         *
 ****************************************************************************************/
void Rotation::setAngle(GLfloat angle)
{
    _angle = angle;
}
